<?php
/*
 * php连接mongodb
 * @package
 * @author     wanglei@wyzc.com
 * @version    $Id$
 */


//连接副本集
//参考：http://www.php.net/manual/zh/mongo.connecting.rs.php
$m = new MongoClient(
	"mongodb://114.215.124.216:27018,
			   114.215.124.216:27017,
			   114.215.124.216:27019",
	array(
		"replicaSet" => "replSet-leo"
	)
);

//设置读取优先策略
//参考：http://php.net/manual/zh/mongo.readpreferences.php
//第二个参数是标签集,参考：https://docs.mongodb.org/manual/tutorial/configure-replica-set-tag-sets/

#$m->setReadPreference(MongoClient::RP_PRIMARY, array()); //只从主库读取数据，默认
$m->setReadPreference(MongoClient::RP_PRIMARY_PREFERRED, array()); //优先读主库，主库连不上读丛库
#$m->setReadPreference(MongoClient::RP_SECONDARY, array()); //只从从库读取数据
#$m->setReadPreference(MongoClient::RP_SECONDARY_PREFERRED, array()); //优先读从库，没有丛库读主库
#$m->setReadPreference(MongoClient::RP_NEAREST, array()); //随机读取一个ping时间低于15毫秒的节点，读取可能发生在主节点或者从节点

//选择数据库test
$test = $m->selectDB('test');

//插入数据
for($i=1;$i<20;$i++){
	$test->article->insert(array(
		'id'=>$i,
		'title'=>'文档对象就是最小存储单位，对应于关系型数据库的行'.$i*3,
		'create_time'=>time()
	));
}

//读取集合数据
$list = $test->article->find();

foreach($list as $v){
	var_dump($v);
}
